/**
 * 返回的结果字符串单词间仅用单个空格分割，且不包含额外的空格
 * 对s进行一次遍历，定义left和right定义一个单词的开始和结束
 * 然后截取整个单词，放入数组，最后对数组进行反转拼接
 * @param {*} s
 */
// var reverseWords = function (s = "") {
//   let left = -1,
//     right = -1,
//     resultList = []
//   for (let i = 0; i < s.length; i++) {
//     // 空格开始的
//     if (s[i] === " ") {
//       // 开头就是空格
//       if (left === -1) {
//         continue
//       } else {
//         right = i - 1
//       }
//     } else {
//       // 当遇到非空格的时候，先判断左边是否有值，没有值就赋值
//       if (left === -1) {
//         left = i
//       }
//     }
//     // 每遍历一次，都判断当前是否是一个单词（left和right有值）
//     // 特殊情况left有值，然后i到底了，此时right没值
//     if (left > -1 && right > -1) {
//       const char = s.substring(left, right + 1)
//       resultList.push(char)
//       left = -1
//       right = -1
//     } else if (left > -1 && i === s.length - 1) {
//       const char = s.substring(left)
//       resultList.push(char)
//     }
//   }
//   return resultList.reverse().join(" ")
// }

// 字符串分割
var reverseWords = function (s) {
  return s.trim().split(/\s+/).reverse().join(" ")
}

export { reverseWords }
